Học cách lưu điểm số, đếm ngược thời gian và đưa thông tin quan trọng lên sân khấu để người chơi luôn biết mình đang ở đâu trong game.
Biến — "hộp nhớ" của dự án
Biến (variable) là nơi Scratch lưu một giá trị có thể thay đổi trong lúc chạy: điểm số, số mạng, thời gian còn lại, tên người chơi… Mỗi biến có tên riêng để bạn gọi lại trong các khối lệnh.
Nhóm Biến (màu cam) chứa các khối tạo, đặt và thay đổi giá trị
Khi tạo biến mới, Scratch hỏi biến thuộc về toàn sân khấu hay chỉ nhân vật này:
Cho tất cả sprites
Mọi nhân vật dùng chung một giá trị — phù hợp cho điểm, thời gian, cấp độ.
Chỉ cho sprite này
Mỗi nhân vật có bản sao riêng — phù hợp cho máu từng kẻ thù, tốc độ riêng.
💡 Ghi nhớ
Hai khối quan trọng nhất: đặt … thành (gán giá trị mới) và thay đổi … thêm (cộng/trừ dần). Điểm số thường bắt đầu bằng đặt điểm thành 0, sau đó thay đổi điểm thêm 10 mỗi khi ăn táo.
Biến đếm điểm trong game
Điểm số là ứng dụng phổ biến nhất của biến. Quy trình cơ bản gồm ba bước: khởi tạo khi bắt đầu, cập nhật khi có sự kiện, kiểm tra điều kiện thắng/thua.
khi nhấn cờ xanh đặt [điểm v] thành [0]
khi nhấn vào nhân vật này thay đổi [điểm v] thêm [1] phát tiếng [pop v]
📌 Ví dụ: Thắng khi đủ 50 điểm
Thêm script song song:
khi nhấn cờ xanh đợi đến khi <(điểm) > [49]> nói [Bạn thắng!] trong [3] giây dừng [tất cả v]
Hiển thị nhiều thông số cùng lúc
Game thường cần vài biến song song:
điểm
Tăng khi làm đúng, giảm khi phạm lỗi
mạng
Giảm khi chạm kẻ thù, game over khi = 0
cấp
Tăng mỗi khi hoàn thành màn chơi
Đếm thời gian trong Scratch
Có hai cách chính để theo dõi thời gian: dùng đồng hồ có sẵn của Scratch hoặc tự tạo biến đếm ngược.
Đồng hồ (Timer) — nhóm Cảm biến
Scratch có sẵn giá trị đồng hồ đếm số giây kể từ khi bạn đặt đồng hồ về 0. Không cần tạo biến riêng — chỉ cần bật hiển thị bằng cách tick ô vuông cạnh khối đồng hồ trong palette Cảm biến.
Khối đồng hồ nằm trong nhóm Cảm biến (màu xanh nhạt)
khi nhấn cờ xanh đặt [đồng hồ v] về [0] đợi đến khi <(đồng hồ) > [30]> nói [Hết giờ!] trong [2] giây
Đoạn trên chờ 30 giây rồi thông báo hết giờ — hữu ích cho game giới hạn thời gian.
Biến đếm ngược tự tạo
Khi cần hiển thị "còn 60, 59, 58…" thay vì "đã chạy 1, 2, 3…", hãy dùng biến giây còn lại:
📌 Ví dụ: Đếm ngược 10 giây
khi nhấn cờ xanh đặt [giây còn lại v] thành [10] lặp đến khi <(giây còn lại) = [0]> đợi [1] giây thay đổi [giây còn lại v] thêm [-1] kết thúc nói [Bắt đầu!] trong [2] giây
💡 Ghi nhớ
Đồng hồ đếm tăng dần (thời gian đã trôi). Biến đếm ngược đếm giảm dần (thời gian còn lại). Chọn cách nào tùy cách bạn muốn người chơi nhìn thấy trên màn hình.
Hiển thị thông tin trên sân khấu (Stage Monitor)
Khi tạo biến, Scratch mặc định hiện một hộp hiển thị (stage monitor) trên sân khấu — nơi người chơi đọc được điểm, thời gian hay máu. Đây là cách đơn giản nhất để "giao diện" game mà không cần vẽ thêm sprite.
Bật và tắt hiển thị
Tick/bỏ tick ô vuông cạnh tên biến trong palette Biến.
Tick ô cạnh khối đồng hồ trong palette Cảm biến.
Dùng khối hiện biến / ẩn biến trong script để điều khiển theo thời điểm.
khi nhấn cờ xanh hiện biến [điểm v] ẩn biến [mật khẩu v]
Kéo thả vị trí
Trong màn hình soạn thảo, bạn có thể kéo hộp hiển thị đến góc trên, giữa màn hoặc bất kỳ chỗ nào trên sân khấu. Vị trí được lưu cùng dự án.
Ba kiểu hiển thị biến
Nhấp chuột phải lên hộp hiển thị (hoặc double-click) để đổi kiểu:
Thường
Hiện tên biến + giá trị — dễ hiểu nhất
Lớn
Chỉ hiện số to — phù hợp điểm, đồng hồ
Thanh trượt
Kéo để đổi giá trị — tiện khi test hoặc chỉnh âm lượng
Stage monitor giúp người chơi theo dõi thông tin mà không cần sprite riêng cho từng dòng chữ
📌 Mẹo bố cục HUD game
Đặt điểm góc trên trái (kiểu lớn), mạng góc trên phải, giây còn lại giữa trên — tạo bảng thông tin (HUD) quen thuộc như game điện tử.
Kết hợp điểm, thời gian và điều kiện kết thúc
Game hoàn chỉnh thường kết thúc khi hết giờ, đủ điểm hoặc hết mạng. Bạn có thể dùng nhiều script song song, mỗi script theo dõi một điều kiện:
khi nhấn cờ xanh đặt [điểm v] thành [0] đặt [mạng v] thành [3] đặt [giây còn lại v] thành [60] hiện biến [điểm v] hiện biến [mạng v] hiện biến [giây còn lại v]
Script riêng kiểm tra thua khi mạng = 0, script khác kiểm tra thắng khi điểm ≥ 100, script thứ ba đếm ngược giây còn lại và dừng game khi về 0.
💡 Ghi nhớ
Khi debug, bật stage monitor cho biến nghi ngờ lỗi — nhìn giá trị thay đổi theo thời gian thực giúp bạn tìm bug nhanh hơn đọc cả đống khối lệnh.
Mẹo và lỗi thường gặp
Quên đặt lại giá trị khi cờ xanh
Chạy game lần hai mà điểm vẫn là 80 từ lần trước — do thiếu đặt điểm thành 0 trong script khởi động. Luôn reset mọi biến quan trọng khi khi nhấn cờ xanh.
Nhầm "đặt" và "thay đổi"
Đặt điểm thành 10 gán đúng 10. Thay đổi điểm thêm 10 cộng thêm 10 vào giá trị hiện tại. Dùng sai sẽ khiến điểm nhảy lung tung.
Ẩn biến quan trọng
Nếu người chơi không thấy điểm hoặc đồng hồ, kiểm tra ô tick trong palette và khối hiện biến — có thể script đã gọi ẩn biến trước đó.
⚠️ Lỗi phổ biến
Dùng biến cho tất cả sprites khi mỗi nhân vật cần máu riêng — mọi kẻ thù cùng chia một thanh máu. Hãy chọn chỉ cho sprite này cho thuộc tính cá nhân.
Đặt tên biến ngắn, rõ (điểm, mạng, giây còn lại).
Reset biến khi cờ xanh; hiện monitor cần thiết.
Kéo monitor đến vị trí đẹp; chọn kiểu hiển thị phù hợp.
Viết script cập nhật điểm/thời gian khi có sự kiện.
Thêm điều kiện thắng/thua dựa trên giá trị biến.
Dự án thực hành: Game săn sao 60 giây
Xây dựng game đơn giản: trong 60 giây, nhấn vào sao xuất hiện ngẫu nhiên để ghi điểm.
📌 Gợi ý triển khai
Biến điểm, giây còn lại — cho tất cả sprites, kiểu hiển thị lớn.
Cờ xanh: đặt điểm = 0, giây còn lại = 60, hiện cả hai monitor.
Script đếm ngược: mỗi giây giảm giây còn lại; khi = 0 → nói điểm cuối, dừng tất cả.
Sao: mỗi lần nhấn → thay đổi điểm thêm 1, đi tới vị trí ngẫu nhiên, phát âm thanh.
Thắng sớm: nếu điểm ≥ 30 trước khi hết giờ → thông báo "Xuất sắc!".
💡 Ghi nhớ
Biến và stage monitor là nền tảng của mọi game Scratch có luật chơi rõ ràng. Thành thạo phần này, bạn đã có thể làm quiz, đua xe, phiêu lưu và nhiều thể loại khác.